[HVM] Save/restore: Save the ACPI PM control register in qemu
authorTim Deegan <Tim.Deegan@xensource.com>
Thu, 29 Mar 2007 15:28:27 +0000 (15:28 +0000)
committerTim Deegan <Tim.Deegan@xensource.com>
Thu, 29 Mar 2007 15:28:27 +0000 (15:28 +0000)
Signed-off-by: Tim Deegan <Tim.Deegan@xensource.com>
tools/ioemu/hw/piix4acpi.c

index c4a8e38cd0d4fbf916a2850449d7968f1d4db991..731ba83f8006198b5228b1302330f9f1c241df68 100644 (file)
@@ -57,6 +57,20 @@ typedef struct PCIAcpiState {
     uint16_t pm1_control; /* pm1a_ECNT_BLK */
 } PCIAcpiState;
 
+static void piix4acpi_save(QEMUFile *f, void *opaque)
+{
+    PCIAcpiState *s = opaque;
+    qemu_put_be16s(f, &s->pm1_control);
+}
+
+static int piix4acpi_load(QEMUFile *f, void *opaque, int version_id)
+{
+    PCIAcpiState *s = opaque;
+    if (version_id > 1) 
+        return -EINVAL;
+    qemu_get_be16s(f, &s->pm1_control);
+}
+
 static void acpiPm1Control_writeb(void *opaque, uint32_t addr, uint32_t val)
 {
     PCIAcpiState *s = opaque;
@@ -193,4 +207,8 @@ void pci_piix4_acpi_init(PCIBus *bus, int devfn)
     d->pm1_control = SCI_EN;
 
     acpi_map(d, 0, 0x1f40, 0x10, PCI_ADDRESS_SPACE_IO);
+
+    register_savevm("piix4acpi", 0, 1, piix4acpi_save, piix4acpi_load, d);    
+    register_savevm("piix4acpi_pci", 0, 1, generic_pci_save, generic_pci_load, 
+                    &d->dev);
 }